﻿using Sgr.Workspace.Models;

namespace Sgr.Workspace.ViewModels
{
    public class OpsOverviewViewModel
    {
        #region 服务企业数量

        /// <summary>
        /// 当前服务的企业数量
        /// </summary>
        public int CurrentOrgCount { get; set; }

        /// <summary>
        /// 上一个周期的企业数量
        /// </summary>
        public int PrevOrgCount { get; set; }

        /// <summary>
        /// 近一周企业操作排名
        /// </summary>
        public RankingInfo[]? OpOrgs { get; set; }

        #endregion 服务企业数量

        #region 服务用户数量

        /// <summary>
        /// 当前服务的用户数量
        /// </summary>
        public int CurrentUserCount { get; set; }

        /// <summary>
        /// 上一个周期的用户数量
        /// </summary>
        public int PreUserCount { get; set; }

        /// <summary>
        /// 近一周用户操作排名
        /// </summary>
        public RankingInfo[]? OpUsers { get; set; }

        #endregion 服务用户数量

        #region 在线用户数（一般情况下，20分钟更新一次）

        /// <summary>
        /// 当前在线用户数
        /// </summary>
        public int CurrentOnlineUserCount { get; set; }

        /// <summary>
        /// 上一个周期的在线用户数
        /// </summary>
        public int PreOnlineUserCount { get; set; }

        #endregion 在线用户数（一般情况下，20分钟更新一次）

        #region 近三十天，每天日活用户数

        /// <summary>
        /// 近三十天，每天日活用户数 [ 索引=0，表示昨天的日活数量]
        /// </summary>
        public int[]? Activities { get; set; }
        /// <summary>
        /// 历史中单日最大日活
        /// </summary>
        public int MaxActivityCount { get; set; }

        #endregion 近三十天，每天日活用户数

        #region 操作情况统计

        /// <summary>
        /// 近十四天，每天操作总数 [ 索引=0，表示昨天的操作总数]
        /// </summary>
        public int[]? OpTotals { get; set; }

        /// <summary>
        /// 近1-7天操作成功率（百分比）
        /// </summary>
        public double OpWeeklySuccessRate { get; set; }

        /// <summary>
        /// 近8-14天操作成功率（百分比）
        /// </summary>
        public double OpSecondWeekSuccessRate { get; set; }

        /// <summary>
        /// 近一周的小时活跃度分布
        /// </summary>
        public int[] HourlyActivityDistribution { get; set; } = new int[24];

        #endregion 操作情况统计
    }
}